#ifndef PAUSE_SCREEN_H_
#define PAUSE_SCREEN_H_

#ifdef _WIN32
#include <windows.h>
#endif

#include "GLee.h"
#include <GL/glu.h>
#include <boost/shared_ptr.hpp>

class Scene;
class GLSLProgram;
class Button;
class FreeTypeFont;

class PauseScreen
{
public:
    PauseScreen(void);
    PauseScreen(boost::shared_ptr<Scene> scene);
    ~PauseScreen(void);

    void prepare(float dt);
    void render(void);
    bool initialize(void);

    bool resumeButtonPressed(void) const;
    bool mainButtonPressed(void) const;
    bool exitButtonPressed(void) const;

    void resetResumeButton(void);
    void resetMainButton(void);
    void resetExitButton(void);

private:
    boost::shared_ptr<Scene> m_scene;
    boost::shared_ptr<FreeTypeFont> m_font;
    static GLuint m_vertexBuffer;
    static GLuint m_colorBuffer;
    static GLSLProgram* m_shaderProgram;

    Button* m_resumeBtn;
    Button* m_mainMenuBtn;
    Button* m_exitBtn;

    bool initBackground(void);
    void renderBackground(void) const;

};

#endif // PAUSE_SCREEN_H_
